const strLit = 'Hello';
const strObj = new String('Hello');
console.log(strLit, typeof strLit); // 输出：Hello string
console.log(strObj, typeof strObj); // 输出：[String: 'Hello']object
console.log(strLit.toUpperCase()); // 输出：HELL
console.log(strObj.valueOf(), typeof strObj.valueOf()); // 输出：Hello string
console.log(strLit.constructor); // 输出：[Function: String]
console.log(Object.getPrototypeOf(strObj)); // 输出：[String:prototype]
console.log(strLit instanceof String); // 输出：false
console.log(strObj instanceof String); // 输出：true
const numLit = 42; // 数字字⾯量
const numObj = new Number(42); // 数字对象
console.log(numLit, typeof numLit); // 输出：42 number
console.log(numObj, typeof numObj); // 输出：[Number: 42] object
const boolLit = true; // 布尔字⾯量
const boolObj = new Boolean(true); // 布尔对象
console.log(boolLit, typeof boolLit); // 输出：true boolean
console.log(boolObj, typeof boolObj); // 输出：[Boolean: true]object
const arrLit = [1, 2, 3]; // 数组字⾯量
const arrObj = new Array(1, 2, 3); // 数组对象
console.log(arrLit, typeof arrLit); // 输出：[1, 2, 3] object
console.log(arrObj, typeof arrObj); // 输出：[1, 2, 3] object
function funcLit(x) {
    return x * x;
}
console.log(funcLit(5)); // 输出：25
console.log(typeof funcLit); // 输出：function
const funcObj = new Function('x', 'return x * x;');
console.log(funcObj(5)); // 输出：25
console.log(typeof funcObj); // 输出：function
const obj1 = {};
console.log(obj1, typeof obj1); // 输出：{} object
const obj2 = new Object();
console.log(obj2, typeof obj2); // 输出：{} objec